#include <iostream>
#include <vector>
using namespace std;

// class Solution {
// public:
//     bool canJump(vector<int>& nums) {
//         // 使用min
//         int n = nums.size();
//         bool reach[10000];
//         for(int i=0;i<n;i++) reach[i] = false;
//         reach[0] = true;
//         for(int i=0;i<n;i++) {
//             if(reach[i]) {
//                 for(int j=i+1;j<=min(i+nums[i],n-1);j++) {
//                     reach[j] = true;
//                 }
//             }
//             else {
//                 return false;
//             }
//         }
//         return true;
//     }
// };

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int top=0;
        int n = nums.size();
        for(int i=0;i<n;i++) {
            if(i>top) {
                return false;
            }
            top = max(top,i+nums[i]);
            if(top>=n) {
                return true;
            }
        }
        return true;
    }
};


int main() {
    Solution s;
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {    
        cin >> nums[i];
    }
    cout<<s.canJump(nums)<<endl;
    return 0;
}